<?php

/*
 * This file is part of PHP CS Fixer.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
 *
 * This source file is subject to the MIT license that is bundled
 * with this source code in the file LICENSE.
 */

namespace  app\http\exception;

use think\Exception;

class BaseException extends Exception
{
    public $code     = 500;
    public $msg      = '500 内部错误 ！';
    public $httpCode = 200;


    const ERR_MAP = [
        0 => '操作成功',
        1 =>'失败',

        11000 => 'token不存在',
        11001 => 'token已失效',
        11002 => 'token失效',
        11003 => 'Token不能为空',
        11004 => 'Token解析失败',
        //token参数为空
        11005 => 'token校验失败',
        //未找到对应的token
        11006 => '当前IP访问频繁,请稍后再试',
        11007 => '当前用户访问频繁 , 请稍后再试',


        10000 => 'sign字段不得为空',    //签名字段不存在
        10001 => '签名错误!', // 签名验证失败
        10002 => 'Token不能为空', //token参数为空
        10003 => 'token校验失败', //未找到对应的token
        10004 => '请求时间检测非法', //请求时间为空
        10005 => '请求已过期',    //请求时间小于服务器时间100s
        10006 => '请求时间异常',  //请求时间超过服务器时间100秒
        10007 => '渠道ID为空',  //请求时间超过服务器时间100秒
        10008 => 'token为空',  //请求时间超过服务器时间100秒
        10009 => '渠道ID与token不匹配',
        10010 => '账户不存在或者被禁用!',
        10011 => 'token生成失败!',
        10012 => 'OPENID不匹配',
        10013 => '当前IP未授权',
        10100 => '请求参数错误',  //参数请求体不符合标准
        10101 => '无此接口权限',  //接口未授权
        10102 => '接口未定义',  //接口未授权
        10200 => '操作数据库前校验失败',
        10201 => '参数验证未通过',
        10202 => '会员信息不存在',
        10203 => '身份验证失败',


        10230 => '短信验证失败',
        10231 => '短信发送失败',

        //文章
        10250 => '文章数据未找到',

        //会员相关 10600系列
        10600 => '当前授权账户已绑定!,请勿重复操作',
        10601 => '当前openid不存在,未查找到粉丝信息信息',
        10602 => '当前openid未查找到会员信息',
        10603 => '注册失败',
        10604 => '当前用户已是微信会员!请勿重复注册!',

        //签到相关
        10301 =>'当前时段无签到规则',
        10302 =>'未查找到对应的签到奖励配置!',
        10303 => '您今天已签到,请勿重复签到',
//        10304 => ''
        10500 => '程序内部异常',
        20000 => 'crm调用失败',
        30000 => '营销平台接口调用失败',

        //商城相关 107**系列
        10700 => '当前订单未支付',
        10701 => '当前用户积分不足',
        10702 => '当前商品已下架',
        10703 => '当前商品库存不足',
        10704 => '当前订单已发货',
        10705 => '订单不存在',
        10706 => '订单发货状态有误',
        10707 => '当前订单已发货!',
        10708 => '下单商品规则不能为空!',
        10709 => '查询商品主体信息失败!',
        10710 => '订单项含有不支持多种类型的商品!',
        10711 => '当前用户积分不足!',
        10712 => '查询商品规则信息失败!',
        10713 => '商品库存不足，请购买其它商品！!',
        10714 => '您已购买过当前商品,请勿重复购买! ',
        10715 => '当前订单退货正在处理中!,请耐心等待',
        10716 => '当前订单未支付!',
        10717 => '当前订单退积分不能为负数!',


        10900 => '当前主题为付费主题 , 请购买后使用!',

        //针对主题等单人只需要购买一次永久生效的.


//        第三方接口
        10801 => '获取access_token失败',
        10802 => '获取JS_API参数失败',
        10803 => '获取TICKET失败',


//        109** 移动办公
        10900 =>'登录账号或密码错误，请重新输入!',
        10901 =>'账号已经被禁用，请联系管理员!',
        10902 =>'抱歉，该账号已经被锁定！',
        10903 =>'登录账号或密码错误！！',



        //优惠券相关
        12001 => '活动未开始',
        12002 => '活动已结束',
        12003 => '当前时段活动未开启',
        12004 => '当前时段活动已结束',
        12005 => '当前优惠券已抢完',
        12006 => '当日优惠券已发完',
        12007 => '已达今日领取上限,请明天再来!!',
        12008 => '您的账户积分不足!',
        12009 => '已达到会员领取上限!',
        12010 => '已达今日领取上限,请明天再来!',
        12011 => '账户积分扣减失败!',
        12012 => '该优惠券暂不支持延期!', //当前活动号不存在规则
        12013 => '当前券无满足条件的延期规则',//次数不满足
        12014 => '当前延期订单已支付',
    ];

    /**
     * BaseException constructor.
     *
     * @param mixed $code
     * @param mixed $msg
     */
    public  function __construct($code = 0, $msg = '')
    {
        $this->code = $code;
        if ($msg = $msg ?: self::ERR_MAP[$code]) {
            $this->message = $this->msg = $msg;
        }
    }
}
